package com.xbongbong.workorder.service;

import com.xbongbong.paas.field.ItemPoJo;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.workorder.pojo.WorkOrderTemplateDetailWorkflowPojo;
import com.xbongbong.saas.domain.entity.WorkOrderStageEntity;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 *
 * @author 魏荣杰
 * @date 2019/3/18 15:02
 * @since v1.0
 * @version v1.0
 */
public interface WorkOrderStageService {

    /**
     * Description: 保存工单流程设置
     * @param workStage
     * @param templateId
     * @param corpid
     * @param isNew
     * @return java.util.List<com.xbongbong.pro.workorder.pojo.WorkOrderTemplateDetailWorkflowPojo> 返回旧的workStageList
     * @throws XbbException
     * @author 魏荣杰
     * @date 2019/3/29 14:46
     * @since v1.0
     */
    List<WorkOrderTemplateDetailWorkflowPojo> saveStages(List<WorkOrderTemplateDetailWorkflowPojo> workStage, Long templateId, String corpid, boolean isNew) throws XbbException;

    List<WorkOrderStageEntity> getStageList(Long templateId, String corpid,Boolean filterDel);

    WorkOrderStageEntity getNextStage(Long templateId, Long nowStageId, String corpid);

    WorkOrderStageEntity getPreStage(Long templateId, Long stageId, String corpid);

    Map<Long,Integer> getExpectedTimeMap(String corpid, Long templateId);

    Map<Long,String> getSatgeNameMap(Long templateId, String corpid);

    List<ItemPoJo> getStageNameItemList(Long id, String corpid);

    List<Long> getPreStageList(Long templateId, Long stageId, String corpid);

    List<WorkOrderStageEntity> getStagesByTemplateIdIn(Collection<Long> templateIds, String corpid, Boolean filterDel);

    WorkOrderStageEntity getFirstStage(Long templateId, String corpid);
}
